const app=getApp(); //获取app实例
Page({

  /**
   * 页面的初始数据
   */
  data: {
    userInfo:null,
    collectList:[], //收藏列表
    page:1,  //加载页数
    bgImg:null, //个人封面
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.setData({
      userInfo:app.globalData.userInfo,
    });
    
  },
  onShow(){
    // 已经登录 获取收藏列表
    if(this.data.userInfo){
      // 调用collectionList() 函数,显示第一页数据
      this.collectionList(0,5);
      // 获取封面

    }
    // console.log("collectList==>",this.collectList)
  },
  // 上拉触底 加载显示数据
  onReachBottom(){
    this.setData({
      page:++this.data.page
    });
    wx.showLoading({
      title: '加载中...',
    })
    // 计算跳过的数量 = (页数-1) 乘以每页数量
    let skip=(this.data.page-1)*5;
    const database = wx.cloud.database();//获取当前云环境下数据库对象
    // 获取集合实例(引用集合)
    const movieStore=database.collection("movie_store");
    movieStore.orderBy("collecttime","desc").skip(skip).limit(5).get().then(res => {
      let collectList=this.data.collectList;
      // 往后面添加数据
      collectList=collectList.concat(res.data);
      wx.hideLoading();
      this.setData({
        // 改变collectList数据
        collectList:collectList
      })
    })
  },

  // 定义collectionList()函数(用作调用)
  collectionList(skip,limit){
    // 获取当前云环境下的数据库对象
    const database = wx.cloud.database();
    // 获取集合实例(引用集合)
    const movieStore=database.collection("movie_store");
    /* 第一页 skip(跳过的条数)   limit(查询的条数) 
    // 查询所有收藏列表 desc 降序 第一次加载第一页 
    // orderBy()方法里的参数 collecttime 用于定义需要排序的字段 */
    movieStore.orderBy("collecttime","desc").skip(skip).limit(limit).get().then(res => {
      // console.log("历史记录数=>",res);/////////
      res.data.forEach((v)=>{
        let collecttimes = this.formatTime(v.collecttime);
        // console.log("格式化的时间==>",collecttimes);
          v.collecttime=collecttimes;
      })
      // console.log("取出时间==>",res.data);
      this.setData({
        // 取出数据库数据并存入collectionList
        collectList:res.data
      })
    })
  },
  // 格式化时间函数
  formatTime(time){
    let dates=new Date(time);
    let Y=dates.getFullYear(); 
    let M=dates.getMonth()+1;
    let D=dates.getDate();
    let H=dates.getHours();
    let Minut=dates.getMinutes();
    let S=dates.getSeconds();
    return Y+"/"+M+ "/"+D+ " " +H+":"+Minut+":"+S;
  },
  
  // 授权登录
  authLogin(){
    // 需用户同意才能获取数据
    wx.getUserProfile({ //登录授权
      desc: '登录',
      success:((result)=>{
        // console.log(result);
        app.globalData.userInfo=result;
        this.setData({
          userInfo:result
        })
        // 调用collectionList() 函数
        this.collectionList(0,5);
      })
    })
  },
  // 删除 数据库 里面的部分数据
  deleteCollect(){
    const database=wx.cloud.database();
    const movie_Store=database.collection("movie_store");
    // Command 数据库操作符 方法:_.lt 小于指定值; _.gt 大于指定值
    const _=database.command;
    movie_Store.where({
      // 删除满足条件、指定时间的记录;此处删除最后一条记录
      "collecttime":_.lt(new Date().getTime())
    }).remove()
    .then(result=>{
      // console.log("1111111",this);
      
      movie_Store.get({//不会立即更新的原因之一,this指向被改变,所以不能用function(),需要用箭头函数
        success: (result) => {
          this.setData({
            collectList:result.data,
          })
        },
      })
      console.log("movie_Store删除记录结果:",this.data.collectList);
      wx.showToast({
        title: '删除成功',
      })
      // console.log("删除记录结果:",result);
    }).catch(err=>{
      wx.showToast({
        title: '删除失败',
      })
    })
  },

  // 更新数据
  /*updateCollect(){
    // 获取当前云环境下的数据库对象
    const database=wx.cloud.database();
    // 获取集合实例
    const movie_Store=database.collection("movie_store");
    const _=database.command;
    movie_Store.where({
      // _.lt(放入指定时间)
      "collecttime":_.lt(1637065460894)
    }).update({
      data:{
        "index_intro":"修改修改gggggggggggg"
      }
    }).then(result=>{
      wx.showToast({
        title: '修改成功',
      })
      console.log("修改成功");
    }).catch(err=>{
      wx.showToast({
        title: '修改失败',
        icon:'error'
      })
      console.log("修改失败",err)
    })
    
  },
  */
  
  // 上传个人封面
  uploadImg(){
    // wx.chooseImage 选择上传图片
    wx.chooseImage({
      count: 1,
      success:(result)=>{
        console.log(result);
        this.setData({
          bgImg:result.tempFilePaths[0]
        })
        // 上传到云存储
        wx.cloud.uploadFile({
          // 存储到coverimg文件夹里面
          cloudPath:"coverimg/mycover"+Math.random()+".jpg", //云存储路径
          filePath:result.tempFilePaths[0],  //本地选择图片路径
        }).then(re=>{
          // 如果图片上传成功把fileID存储到数据集合.
          wx.cloud.database().collection("user_bg").add({
            data:{
              "bgimg":re.fileID,
              "username":this.data.userInfo.userInfo.nickName
            }
          }).then(result=>{
            // console.log("保存成功",this.data.userInfo.userInfo.nickName,result);
          });
          console.log("上传成功",re)
        }).catch(err=>{
          console.log("上传失败",err);
        })
      }
    })
  },
  // 云函数
  /*getCloudFun(){
    // 调用云函数wx.cloud.callFunction
    wx.cloud.callFunction({
      name:"deleteCollect", //云函数名称
      data:{a:100,b:0.999,hello:"你好你好"}
    }).then(result=>{
      // console.log("getCloudFun云函数调用成功",result);
      wx.showToast({
        title: '求和'+result.result.counter,
      })
    }).catch(err=>{
      console.log("云函数调用失败",err)
    })
  },
  */
  
  // 清空收藏(没有上传部署的删不了)
  clearCollect(){
    wx.cloud.callFunction({
      name:"clearCollect",
      data:{}
    }).then(result=>{
      this.setData({
        collectList:'',
      })
      wx.showToast({
        title: '清除完毕',
      })
      console.log("clearCollect云函数调用结果",result);
    }).catch(err=>{
      wx.showToast({
        title: '清除失败',
        icon:'error'
      })
      console.log(err);
    })
  },
  // 清空上传的个人封面
  // clearUploadImg(){
  //   wx.cloud.callFunction({
  //     name:"clearCollect",
  //     data:{}
  //   }).then(result=>{
  //     wx.showToast({
  //       title: '清除完毕',
  //     })
  //     console.log("clearUploadImg云函数调用结果",result);
  //   }).catch(err=>{
  //     wx.showToast({
  //       title: '清除失败',
  //       icon:'error'
  //     })
  //     console.log(err);
  //   })
  // }

})